# Mobile, Offline Mapping Using Open Tools & Data

## By Justin Miller, MapBox / Development Seed, OSCON 2012

### http://www.oscon.com/oscon2012/public/schedule/detail/24027

> Open source mapping and GIS has been exploding onto the tech scene in the past year. Combined with the equally explosive growth of powerful mobile platforms, a need is arising for rich, offline-capable mobile mapping technologies. This presentation will focus on a process for taking open data sources, turning them into beautiful custom maps, using them on mobile in an offline-capable way, and doing it all with entirely open source code. Attendees should expect to gain understanding of this process, the open source tools available for their use, and potential problems faced when mapping on mobile.

You should have a PDF of the slides included with this file. If you don't, feel free to email me at justin@mapbox.com. 

You can also grab the TileMill project that I showed here: 

 * https://dl.dropbox.com/u/575564/foodcarts.zip [34 KB]

TileMill projects aren't completely portable in this way, so you may have to recreate certain aspects of it, but the CartoCSS file for styling is at least available in the project folder. 

You can get the original data sources here: 

 * https://dl.dropbox.com/u/575564/sources.zip [75 MB]

I've tried to attribute these data sources properly in that download's README.md file. 

You can grab a full rendered MBTiles of the project here. Alternatively, this will take you about 15 minutes to render out from TileMill yourself. 

 * http://a.tiles.mapbox.com/v3/justin.foodcarts.mbtiles [218 MB]

You can see the web version of the map here, made by uploading the MBTiles file to a MapBox account: 

 * https://tiles.mapbox.com/justin/map/foodcarts

Lastly, you can get the sample iOS app that I showed here: 

 * https://github.com/mapbox/mapbox-ios-example

You will want to adjust the `OfflineLayerViewController.m` file to point to the alternative MBTiles file (after adding it to the project) and you may want to look at the `-singleTapOnMap:at:` method of the `InteractiveLayerViewController.m` file to see how the interactivity is handled. 

For more information on the MapBox iOS SDK: 

 * http://mapbox.com/mobile/

Thanks for your interest! 

-JM